-------------------------------------------------------------------------------
-- Archivo:                         mux4to1.vhdl
-- Fecha de creacion:               13/01/2011
-- Ultima fecha de modificacion:    28/01/2011
-- Diseñador:                       Liliana Andrade
-- Diseño:                          mux4to1
-- Proposito:                       Multiplexor de 4 entradas y 1 salida que se
--                                  encarga  de  seleccionar el resultado de la
--                                  LU segun los 2 bits menos significativo del 
--                                  codigo de operacion recibido
-------------------------------------------------------------------------------

library ieee;
use ieee.std_logic_1164.all;

entity mux4to1 is
    port(
        I0_i        : in std_logic_vector(3 downto 0);
        I1_i        : in std_logic_vector(3 downto 0);
        I2_i        : in std_logic_vector(3 downto 0);
        I3_i        : in std_logic_vector(3 downto 0);
        SEL_i       : in std_logic_vector(1 downto 0);
        OUTPUT_o    : out std_logic_vector(3 downto 0)
    );
end mux4to1;

architecture behavioral of mux4to1 is

    begin

        with SEL_i select
            OUTPUT_o <=
                I0_i when "00",  -- 2 bits menos significativos asociados a and
                I1_i when "01",  -- 2 bits menos significativos asociados a or
                I2_i when "10",  -- 2 bits menos significativos asociados a xor
                I3_i when "11";  -- 2 bits menos significativos asociados a not
 
end behavioral;
